1 REM *** MODULGENERATOR *** 2 REM 1987 BY RUEDIGER STAHL 3 REM *** TINY EPROMMER *** 9 : 10 POKE46,38:POKE45,0:REM V.ANF. 15 POKE56,48:POKE55,00:POKE52,48:POKE51,00:CLR 20 M$=" BITTE WAEHLEN:":EI=16 30 IFPEEK(49152)=32ANDPEEK(49400)=169THEN50 40 PRINT"[147] MODULGENERATOR V2.0 41 [153]" BY RUEDIGER STAHL":[153]" HURTENSTR. 20" 42 [153]" 8138 FRIEDING-ANDECHS 1987 45 :LOAD"MA.TINY EPROMMER",8,1 50 LM=49152:DR=49296:BL=49464:BS=49514:CL=49716 55 SYS49768 100 POKE53280,5:POKE53281,0:POKE650,0 110 SYSCL:PRINT"[153]>>> TINY EPROMMER MODULGENERATOR V2.0<<<"; 120 PRINT"---------------------------------------- 130 [153]" BITTE WAEHLEN: 140 PRINTTAB(4)"'F1' = HAUPTMENUE 145 [153][163]4)"'F3' = MODULGENERATOR FUER 146 PRINTTAB(11)"EIN PROGRAMM 150 [153][163]4)"'F5' = MODULGENERATOR FUER MEHRERE 151 PRINTTAB(11)"PROGRAMME MIT MENUEAUSWAHL 155 [153][163]4)"'F7' = FILES/DIREKTORY 160 PRINTTAB(4)"'F2' = EINSCHALTMELDUNG FUER MODUL- 161 [153][163]11)"PROGRAMME MIT MENUEAUSWAHL 162 PRINTTAB(11)"AENDERN 165 [153][163]4)"'F4' = PROGRAMM BEENDEN 200 PRINT"----------------------------------------"; 210 PRINT">>> MODULGENERATOR V2.0 (8K/S.32768) <<[157]"CHR$(148)"<"; 260 GETA$:IFA$=""THEN260 275 A=ASC(A$):IFA<133ORA>138THEN260 280 SYSCL:ONA-132GOSUB1000,2200,2300,3000,2600,4000 390 GOTO100 999 REM UNTERMENUES 1000 PRINT" HAUPTMENUE WIRD NACHGELADEN 1010 [141]50050:[139]A$[178]"N"[167][142] 1020 [158]49816:[151]45,255:[151]46,46:[147]"TINY EPROMMER",8 2000 : 2010 [142] 2200 [153]"MODULSTARTGENERATOR FUER EIN PROGRAMM" 2210 [140]:AD[178]32768:EN[178]40960 2215 [135]A:[139]A[179]0[167]2220 2216 [151]AD,A:AD[178]AD[170]1:[137]2215 2220 Z[178]AD[170]5:[141]2400:[141]2500 2221 [139]EN[179]Z[176]A[179][177]64[167]2000 2222 A[178]Z:[158]49848,A[170]1,40960,255:[141]50500 2225 [151]AD[170]1,Z[173]256:[151]AD,Z[171][194](AD[170]1)[172]256 2226 [151]AD[170]3,AN[173]256:[151]AD[170]2,AN[171][194](AD[170]3)[172]256 2227 [151]AD[170]4,MO 2230 [158]CL 2240 [153]"PROGRAMM STEHT VON" 2245 [153]" $8000 BIS $";A$;" IM SPEICHER" 2250 [141]50010 2260 [142] 2300 [153]"MODULSTARTGENERATOR FUER MEHRERE PRO- 2310 PRINT"GRAMME 2315 [140]:AD[178]32768:EN[178]40958:NU[178]0 2316 [135]A:[139]A[177][171]1[167]2316 2317 [135]A:[139]A[179]0[167]2320 2318 [151]AD,A:AD[178]AD[170]1:[137]2317 2320 [129]A[178]0[164][195](M$)[171]1:[151]AD[170]A,[198]([202](M$,A[170]1,1)[170]" "):[130]:[151]AD[170]A,0 2321 AD[178]AD[170]A[170]1 2325 [158]CL:Z[178]AD[170]5:NU[178]NU[170]1:[141]2400 2326 [153]"PROGRAMM NUMMER"NU":" 2327 [153]" NAME, UNTER DEM DAS PROGRMM IM MENUE 2328 PRINT" ERSCHEINEN SOLL:" 2329 PRINT" ";NU-1;"[157]. ";:EI=25:GOSUB50100 2330 IFA$="$"THENSYSDR:GOSUB50010:SYSCL:GOTO2326 2331 FORA=1TOLEN(A$):POKEZ+A-1,ASC(MID$(A$,A,1)+" "):NEXT:POKEZ+A-1,0 2333 Z=Z+A:IFZ>ENTHENPOKEAD,0:POKEAD+1,0:PRINT"SPEICHER VOLL":GOTO2385 2334 SYSCL:GOSUB2400 2335 GOSUB2500 2336 IFZ>ENORA<>64THEN2385 2340 POKEAD+1,Z/256:POKEAD,Z-PEEK(AD+1)*256 2341 POKEAD+3,AN/256:POKEAD+2,AN-PEEK(AD+3)*256 2342 POKEAD+4,MO 2345 POKEZ,0:POKEZ+1,0 2350 PRINT"ROUTINE MIT HEADER STEHT VON 2355 A[178]AD:[141]50500:[153]"$"A$" BIS $"; 2360 A[178]Z[170]1:[141]50500:[153]A$" IM SPEICHER. 2380 AD=Z:NU=NU+1:REM BEI ERROR 2385 2385 Z=AD:NU=NU-1:PRINT"NOCH EIN PROHRAMM ? (J/N)":GOSUB2400 2390 GETA$:IFA$<>"J"ANDA$<>"N"THEN2390 2395 IFA$="J"THEN2325 2396 SYSCL:PRINT"DAS GESAMTE MODULSTARTPROGRAMM LIEGT 2397 A[178]Z[170]1:[158]49848,A[170]1,40960,255:[141]50500 2398 [153]"IN DEM BEREICH VON $8000 BIS $"A$". 2399 GOSUB50010:RETURN 2400 A=EN-Z:GOSUB50500:PRINT"MAXIMALE PROGRAMMLAENGE: $"A$" BYTES. 2410 [153]"(ENTSPRICHT CA."[181]((EN[171]Z)[173]256)"BLOCKS) 2420 RETURN 2500 PRINT" BITTE PROGRAMMTYP WAEHLEN: 2501 T$(0)[178]" PROGRAMM MIT BASICSTART " 2502 T$(1)[178]" MASCHINENPROGRAMM (JMP ...) " 2503 T$(2)[178]"MASCHINENPROGR. SUBROUT. (JSR ...) " 2504 T$(3)[178]"DATEN NUR TRANSVERIEREN, OHNE START" 2505 T$(4)[178]" MENUEPUNKT: ZU BASIC SPRINGEN " 2506 [153]" (MIT CRSR-TASTEN UND RETURN) 2510 IFMO>4THENMO=0 2511 IFMO<0THENMO=4 2512 PRINT"" 2515 FORA=0TO4:IFA=MOTHENPRINT""; 2516 PRINT" ";T$(A);" ":NEXT 2520 GETA$:IFA$<>""ANDA$<>"[145]"ANDA$<>CHR$(13)THEN2520 2521 IFA$="[145]"THENMO=MO-1:GOTO2510 2522 IFA$=""THENMO=MO+1:GOTO2510 2530 : 2535 SYSCL:IFMO<4THEN2540 2536 AN=673:POKEZ,76:POKEZ+1,157:POKEZ+2,227:Z=Z+3 2537 IFEN15THEN2550 2556 IFG=8ANDN$="$"THENSYSDR:GOSUB50010:GOTO2535 2560 OPEN1,G,0,N$ 2561 GET#1,A$:AN=ASC(A$+CHR$(0)):GET#1,A$:AN=AN+ASC(A$+CHR$(0))*256 2562 CLOSE1 2565 SYSBL,N$,G,Z 2570 Z=PEEK(781)+PEEK(782)*256 2575 : 2580 IFZ>ENTHENPRINT"PROGRAMM ZU LANG !" 2585 A=ST:GOSUB50600 2586 GOSUB50010 2590 : 2595 IFMO=0THENAN=2049 2599 RETURN 2600 PRINT"EINSCHALTMELDUNG VERAENDERN: 2605 [153][163]6)"'F1' = ZURUECK 2610 PRINTTAB(6)"'DEL'= ZEICHEN ZURUECKNEHMEN 2615 [141]50010 2620 [141]2650 2621 [161]A$:[139]A$[178]""[167]2621 2622 [139]A$[178]"INPUT"[167][142] 2623 [139]A$[178][199](20)[167]M$[178][200](M$,[182]([195](M$)[171]1)):[137]2620 2624 [139][195](M$)[177]254[167]M$[178][200](M$,254) 2625 M$[178]M$[170]A$:[137]2620 2650 [153]"LOAD *** COMMODORE 64 BASIC V2 *** 2655 PRINT" 64K RAM SYSTEM 38911 BASIC BYTES FREE 2660 [153]M$;"_" 2665 [153]" 1. XXXXXXXXX 2670 RETURN 3000 SYSCL 3015 PRINT" BITTE WAEHLEN:" 3020 PRINTTAB(6)"'F1' = ZURUECK 3025 [153][163]6)"'F3' = DIREKTORY 3030 PRINTTAB(6)"'F5' = FEHLERKANAL 3035 [153][163]6)"'F7' = SAVE CLOSE 3040 PRINTTAB(6)"'F2' = FLOPPY-BEFEHL [160] 3050 [161]A$:[139]A$[178]""[167]3050 3055 A[178][198](A$):[139]A[179]133[176]A[177]137[167]3050 3060 [158]CL 3065 [145]A[171]132[137] 3100,3200,3300,3400,3500 3100 [142] 3200 [158]DR 3210 [141]50010:[137]3000 3300 [141]50600:[141]50010:[137]3000 3400 [153]"SPEICHERBEREICH ABSAVEN: 3410 PRINT"FILENAME:";:GOSUB50100:IFA$=""THEN3000 3415 N$=A$ 3420 A$="8":PRINT"GERAETEADRESSE:8_[157]";:GOSUB50120 3430 G=VAL(A$):IFG>15THENPRINT"[145][145][145]":GOTO3420 3440 A$="8000":PRINT"STARTADRESSE:";A$;"_[157]";:GOSUB50120 3445 GOSUB50400:B=A 3450 A$="9FFF":PRINT"ENDADRESSE :";A$;"_[157]";:GOSUB50120 3455 GOSUB50400 3456 A=A+1:IFA>65535THENA=65535:PRINT"LETZTES BYTE GEHT VERLOHREN" 3460 GOSUB50050:IFA$="N"THEN3000 3470 SYSBS,N$,G,B,A 3475 IFST<>0THENPRINT" I/O-ERROR":GOSUB50010 3480 GOTO3000 3500 EI=25:PRINT"FLOPPY-BEFEHL:"; 3510 GOSUB50100:OPEN1,8,15,A$:CLOSE1 3520 GOSUB50600:GOSUB50010:GOTO3000 4000 PRINT"PROGRAMM VERLASSEN 4010 [141]50050:[139]A$[178]"N"[167][142] 4020 [128]:[138] 50000 : 50010 [151]198,0 50015 [139][194](214)[177]21[167][153]"" 50020 [153]:[153]"  T A S T E D R U E C K E N " 50030 [146]198,1,0:[151]198,0:[142] 50050 : 50060 [151]198,0 50070 [153]:[153]"  A L L E S OCLOSEK ACLOSEY (J/N) ? WAIT" 50075 [146]198,1,0:[161]A$ 50080 [139]A$[179][177]"J"[175]A$[179][177]"N"[175]A$[179][177]"_"[167]50075 50085 [142] 50100 A$[178]"":[153]"_CMD"; 50120 [161]B$:[139]B$[179][177]""[167]50130 50122 [153]"_WAITCMD";:[129]A[178]0[164]80:[130] 50125 [161]B$:[139]B$[179][177]""[167]50130 50127 [153]"_CMD";:[129]A[178]0[164]80:[130]:[137]50120 50130 [139][198](B$)[178]13[167][153]"_":EI[178]16:[142] 50140 [139][198](B$)[177]31[175][198](B$)[179]128[167]50200 50150 [139][198](B$)[177]161[167]50200 50160 [139]B$[179][177][199](20)[175]B$[179][177]"CMD"[167]50120 50170 [139][195](A$)[179]1[167]50120 50180 A$[178][200](A$,[195](A$)[171]1) 50190 [153]" CMDCMD_CMD"; 50195 [137]50120 50200 [139][195](A$)[179]EI[167]50300 50210 [153]" CMDCMD"; 50220 A$[178][200](A$,[195](A$)[171]1) 50300 A$[178]A$[170]B$:[153]B$;"_CMD";:[137]50120 50400 A[178][171]1:[139][195](A$)[177]4[176][195](A$)[179]1[167][142] 50420 [129]X[178]1[164][195](A$) 50430 Z[178][198]([202](A$,X,1)) 50440 [139]47[179]Z[175]Z[179]58[167]Z[178]Z[171]48:[137]50470 50450 [139]Z[179]65[176]Z[177]71[167]A[178][171]1:X[178]4:[130]:[142] 50460 Z[178]Z[171]55 50470 A[178]A[170]Z[172]16[174]([195](A$)[171]X) 50490 [130]:A[178]A[170]1:[142] 50500 A$[178]"":[129]X[178]3[164]0[169][171]1:W[178][181](A[173]16[174]X) 50520 A[178]A[171]W[172]16[174]X:[139]W[177]9[167]W[178]W[170]7 50530 A$[178]A$[170][199](W[170]48) 50540 [130]:[142] 50600 [159]1,8,15:[153]"DISK-STATUS: "; 50610 [161]#1,A$:[153]A$;:[139](ST [175]64)[178]0[167]50610 50630 [160]1:[142] 60000 [143] M. ROUTINEN 61000 [131]10,128,94,254,195,194,205,56,48,0,142,22,208,32,163,253,32,80,253,32 61001 [131]21,253,32,91,255,32,83,228,32,191,227,32,34,228,162,251,154,160,4,185 61002 [131]138,128,153,247,0,136,16,247,166,249,164,250,134,252,132,253,162,143 61003 [131]160,128,134,176,132,177,160,0,177,176,145,249,230,176,208,2,230,177 61004 [131]230,249,208,2,230,250,165,176,197,247,165,177,229,248,144,230,166,251 61005 [131]240,9,202,240,30,202,240,30,202,240,30,169,8,141,2,8,32,51,165,166 61006 [131]249,164,250,134,45,132,46,169,0,32,113,168,76,174,167,108,252,0,32 61007 [131]129,128,76,157,227,-1 62000 [131]10,128,94,254,195,194,205,56,48,0,142,22,208,32,163,253,32,80,253,32 62001 [131]21,253,32,91,255,32,83,228,32,191,227,169,0,141,17,208,32,34,228,162 62002 [131]251,154,160,0,185,31,129,240,6,32,210,255,200,208,245,200,152,24,105 62003 [131]31,133,180,169,129,105,0,133,181,162,0,32,249,128,240,39,169,10,133 62004 [131]211,230,214,134,173,32,108,229,166,173,138,105,47,32,210,255,169,46 62005 [131]32,210,255,230,211,232,160,5,177,176,240,218,32,210,255,200,208,246 62006 [131]134,173,169,27,141,17,208,32,228,255,56,233,48,144,248,197,173,176 62007 [131]244,170,32,249,128,160,0,177,176,153,247,0,200,192,5,208,246,165,249 62008 [131]133,252,165,250,133,253,200,177,176,208,251,200,152,24,101,176,133 62009 [131]176,165,177,105,0,133,177,160,0,177,176,145,249,230,176,208,2,230,177 62010 [131]230,249,208,2,230,250,165,176,197,247,165,177,229,248,144,230,166,251 62011 [131]240,9,202,240,30,202,240,30,202,240,30,169,8,141,2,8,32,51,165,166 62012 [131]249,164,250,134,45,132,46,169,0,32,113,168,76,174,167,108,252,0,32 62013 [131]240,128,76,31,128,134,172,162,0,165,180,133,176,165,181,133,177,160 62014 [131]1,177,176,240,16,228,172,240,12,72,136,177,176,133,176,104,133,177 62015 [131]232,208,234,166,172,168,96,-1 63000 [143] *** ENDE ***